The present invention relates to an encoding method for combining and encoding a vibration wave such as a voice signal with other data such as text data indicating a document and authentication data indicating a transmitter and a decoding method.
As a conventional encoding technique for transmitting or accumulating a voice as one of vibration waves, there is a technique which uses vector quantization (VQ) for regarding N sample values of a voice waveform as an N-dimensional vector, and encoding the vector (specifically, vector data consisting of N sample values, further the vector data indicating the waveform for a predetermined time in the voice waveform) into one code.
Moreover, in the encoding system using the vector quantization, voice is encoded in a procedure of: successively inputting the above-described vector data; selecting the representative vector data most approximate to the currently inputted vector data from a codebook for storing a plurality of representative vector data successively numbered beforehand every time the vector data is inputted; and outputting binary data indicating the number of the selected representative vector data as the code indicating the currently inputted vector data.
Moreover, to reproduce the voice, by successively inputting the encoded code, extracting the representative vector data of the number indicated by the code from the same codebook as the codebook used during encoding every time the code is inputted, and reproducing the waveform corresponding to the currently inputted code from the extracted representative vector data, the voice waveform is restored.
Moreover, as the representative encoding system using this vector quantization, code excited linear prediction (CELP) encoding, and 16 kbit/s low delay code excited linear prediction encoding (LD-CELP: Low Delay-CELP) of the International Telecommunication Union (ITU)-T Recommendation G.728, and the like are exemplified.
Additionally, the above-described LD-CELP uses CELP as a principle, and is known as a method with little encoding delay regardless of a low bit rate. Moreover, CELP or LD-CELP is described in detail, for example, in document 1 xe2x80x9cRecommendation G.728, ITU (1982)xe2x80x9d, document 2 xe2x80x9cHigh Efficiency Voice Encoding Technique for Digital Mobile Communication, authored by Kazunori OZAWA,. Kabushiki Kaisha Trikeps (1992)xe2x80x9d, document 3 xe2x80x9cInternational Standard of Multimedia Encoding, authored by Hiroshi YASUDA, Maruzen Co., Ltd. (1991)xe2x80x9d, and the like.
Additionally, since the digital code of the voice encoded by this encoding system (voice code) can easily be duplicated, there is a fear of secondary use without any permission. Therefore, there is a problem that it is difficult to protect digitized works.
In recent years, as a countermeasure of the problem, the application of electronic watermark has been studied. Specifically, other data such as the authentication data indicating the caller is secretly combined and embedded in the voice code.
However, a preferred method by which other data can secretly be combined (embedded) with the voice code encoded by the above-described vector quantization has not been considered. Moreover, if the other data is simply combined, there is a high possibility that the other combined data is easily deciphered by the third party.
Therefore, when the vibration wave other than a voice signal, such as an analog signal outputted from a sensor, a measuring instrument or the like is encoded by the vector quantization, the electronic watermarking for combining the code with other data such as the authentication data indicating a utilizer and the text data indicating document cannot be performed.
The present invention has been developed in consideration of the problem, and an object thereof is to provide a method of encoding a vibration wave which can secretly be combined with another data during the encoding of a vibration wave such as a voice signal by vector quantization, and a method of decoding the vibration wave in which another data can securely be extracted from the code generated by the encoding method.
In a vibration wave encoding method of the present invention which has been developed to achieve the above-described object, every time the vector data indicating a waveform of a vibration wave for a predetermined time is inputted, the representative vector data most approximate to the currently inputted vector data is selected from a codebook for storing a plurality of representative vector data successively numbered beforehand, and binary data indicating the number of the selected representative vector data is outputted as the code indicating the currently inputted vector data.
Specifically, the vibration wave is encoded by the vector quantization represented by the above-described CELP or LD-CELP, but during the encoding, the information of the vibration wave is combined with other information by embedding the data constituting the other information in the code to be outputted by the following procedure.
First, division instruction information indicating that each representative vector data stored in the codebook belongs to either a first group or a second group is pre-stored in predetermined memory means.
Subsequently, by reading another binary data to be combined with the vibration wave before selecting the representative vector data most approximate to the currently inputted vector data, selecting the representative vector data most approximate to the currently inputted vector data only from the representative vector data belonging to the first group as indicated by the division instruction information stored in the memory means in the representative vector data stored in the codebook when the read binary data is xe2x80x9c0xe2x80x9d, or selecting the representative vector data most approximate to the currently inputted vector data only from the representative vector data belonging to the second group as indicated by the division instruction information stored in the memory means in the representative vector data stored in the codebook when the read binary data is xe2x80x9c1xe2x80x9d the code indicating the currently inputted vector data is combined with the read binary data.
Therefore, when the read binary data is xe2x80x9c0xe2x80x9d the outputted code is binary data indicating any number of the representative vector data belonging to the first group, and conversely when the read binary data is xe2x80x9c1xe2x80x9d the outputted code is binary data indicating any number of the representative vector data belonging to the second group.
Specifically, in the vibration wave encoding method of the present invention, by switching the selection range of the representative vector data in the codebook to the first group and the second group determined by the division instruction information in accordance with the other binary data to be combined, the binary data of the other information is combined (embedded) in the code indicating the inputted vector data.
On the other hand, the vibration wave is restored and the binary data combined as described above can be separated from the code generated by the encoding method by the decoding method of the present invention.
First, in the decoding method of the present invention, every time the code generated by the above-described encoding method is successively inputted, by extracting the representative vector data of the number indicated by the code from the same codebook as the codebook, and reproducing the waveform corresponding to the currently inputted code from the extracted representative vector data, the vibration wave is restored. Specifically, the vibration wave is reproduced by the decoding procedure of the encoding system using the vector quantization.
Here, the division instruction information is stored in predetermined memory means.
Moreover, to perform the decoding as described above, by determining that the code is combined with the binary data xe2x80x9c0xe2x80x9d when the number indicated by the currently inputted code is the number of the representative vector data belonging to the first group as indicated by the division instruction information stored in the memory means in the representative vector data stored in the codebook, and determining that the code is combined with the binary data xe2x80x9c1xe2x80x9d when the number indicated by the currently inputted code is the number of the representative vector data belonging to the second group as indicated by the division instruction information stored in the memory means in the representative vector data stored in the codebook, the other binary data is separated from the currently inputted code.
Therefore, according to the decoding method, the vibration wave is reproduced and the other data can securely be extracted from the code generated by the encoding method.
Moreover, by the encoding method and the decoding method, only a person who knows the division instruction information for dividing the representative vector data in the codebook into two groups can extract the other binary data from the encoded code. Therefore, when the vibration wave is encoded, it is possible to secretly combine the other data and secretly extract the combined data.
Furthermore, by setting the division instruction information so that the numbers of the representative vector data belonging to the first group and the numbers of the representative vector data belonging to the second group are dispersed at random, for example, even if all the codes are combined with the binary data xe2x80x9c0xe2x80x9d, the numbers indicated by the encoded codes fail to deviate, and a possibility that the third party notices the embedding of the other data can remarkably be lowered.
Additionally, according to the encoding method there is a great advantage that a special processing is unnecessary during regeneration of the vibration wave.
Moreover, in the encoding method, when the same division instruction information is used for a long time, some characteristics appear in each encoded code bit value, and the third party possibly notices that the other data is combined.
Therefore, according to the vibration, wave encoding method, in the encoding method, with respect to the previously outputted code, a change condition determination processing of determining whether or not a bit series of the code has a predetermined arrangement pattern is performed before selecting the representative vector data most approximate to the currently inputted vector data. When an affirmative determination is made by the change condition determination processing (specifically, when it is determined that the bit series of the previously outputted code has the predetermined arrangement pattern), the division instruction information to be stored in the memory means is changed in accordance with a predetermined change rule.
In other words, when the bit series of the currently outputted code has the predetermined arrangement pattern, the division instruction information for use in combining the next outputted code with another binary data is changed in accordance with the predetermined change rule.
For this purpose, according to the encoding method, every time the bit series of the outputted code obtains the predetermined arrangement pattern, the selection range (the first and second groups) of the representative vector data in accordance with the binary data to be combined is changed, and some characteristics can be prevented from appearing in the respective encoded code bit values. Therefore, the possibility that the third party notices the combining of the other data can be reduced.
On the other hand, by the decoding method, the vibration wave is restored and the binary data combined as described above can be separated from the code generated by the encoding method.
First, in one embodiment, the vibration wave is reproduced, and the processing of separating the other binary data from the inputted code is performed (i.e., a separation processing in which when the number indicated by the currently inputted code is the number of the representative vector data belonging to the first, group as indicated by the division instruction information stored in the memory means in the representative vector data stored in the codebook, it is determined that the code is combined with the binary data xe2x80x9c0xe2x80x9d, or when the number indicated by the currently inputted code is the number of the representative vector data belonging to the second group as indicated by the division instruction information stored in the memory means in the representative vector data stored in the codebook, it is determined that the-code is combined with the binary data xe2x80x9c1xe2x80x9d, and other binary data is separated from the currently inputted code).
Moreover, particularly in the decoding method, before the separation processing is performed with respect to the currently inputted code, the same change condition determination processing as the change condition determination processing is performed on the previously inputted code. When the affirmative determination is made by the change condition determination processing (specifically, when it is determined that the bit series of the previously inputted code has the predetermined arrangement pattern), a change processing is performed by changing the division instruction information to be stored in the memory means in accordance with the same change rule.
According to the decoding method, the division instruction information can be changed similarly to the encoding method, and as a result, the other binary data can securely be extracted from the code generated by the encoding method.
Additionally, considering a possibility that the combined data is deciphered by the third party, when the other binary data is embedded in all the codes, there is a disadvantageous respect.
Therefore, in one embodiment, the vibration wave is encoded by the vector quantization, but during the encoding, the outputted code is combined with another data by the following procedure.
First, similarly to the encoding method, the division instruction information indicating that each representative vector data stored in the codebook belongs to the first group or the second group is pre-stored in the predetermined memory means.
Moreover, particularly before the representative vector data most approximate to the currently inputted vector data is selected, with respect to the previously outputted code, a synthesis condition determination processing is performed in which it is determined whether or not the bit series of the code has the predetermined arrangement pattern.
Furthermore, similarly to the encoding method, by reading the other binary data to be combined with the vibration wave only when the affirmative determination is made by the synthesis condition determination processing (specifically, when it is determined that the bit series of the previously outputted code has the predetermined arrangement pattern), selecting the representative vector data most approximate to the currently inputted vector data only from the representative vector data belonging to the first group as indicated by the division instruction information stored in the memory means in the representative vector data stored in the codebook when the read binary data is xe2x80x9c0xe2x80x9d, or selecting the representative vector data most approximate to the currently inputted vector data only from the representative vector data belonging to the second group as indicated by the division instruction information stored in the memory means in the representative vector data stored in the codebook when the read binary data is xe2x80x9c1xe2x80x9d, the read binary data is combined with the code indicating the currently inputted vector data.
In other words, in the encoding method, only when the bit series of the currently outputted code has the predetermined arrangement pattern, the other binary data is embedded in the code to be outputted next.
Moreover, according to the encoding method, the code to be embedded with the other binary data can irregularly be limited, and the possibility that the combined data is deciphered by the third party can be reduced. Specifically, the third party who knows no determination content of the synthesis condition determination processing cannot specify the code combined with the other binary data.
On the other hand, by the decoding method, the vibration wave is restored and the binary data synthesized as described above can be separated from the code generated by the encoding method.
First, in an embodiment, the vibration wave is reproduced by the decoding procedure of the encoding system using the vector quantization. Moreover, in the decoding method, the same division instruction information as the division instruction information is stored in the predetermined memory means.
Moreover, particularly in the-decoding method, when the code generated by the encoding method is inputted, the same synthesis condition determination processing as the synthesis condition determination processing is performed on the previously inputted code.
Furthermore, when the affirmative determination is made by the synthesis condition determination processing (specifically, when it is determined that the bit series of the previously inputted code has the predetermined arrangement pattern), by determining that the code is combined with the binary data xe2x80x9c0xe2x80x9d when the number indicated by the currently inputted code is the number of the representative vector data belonging to the first group as indicated by the division instruction information stored in the memory means in the representative vector data stored in the codebook, and determining that the code is combined with the binary data xe2x80x9c1xe2x80x9d when the number indicated by the currently inputted code is the number of the representative vector data belonging to the second group as indicated by the division instruction information stored in the memory means in the representative vector data stored in the codebook, the other binary data is separated from the currently inputted code.
According to the decoding method, the vibration wave is reproduced and the other data can securely be extracted from the code generated by the encoding method.
Subsequently, in an embodiment, before the representative vector data most approximate to the currently inputted vector data is selected, with respect to the previously outputted code, the change condition determination processing is performed in which it is determined whether or not the bit series of the code has the predetermined arrangement pattern. When the affirmative determination is made by the change condition determination processing (specifically, when it is determined that the bit series of the previously outputted code has the predetermined arrangement pattern), the division instruction information to be stored in the memory means is changed in accordance with the predetermined change rule.
Therefore, in an embodiment, some characteristics can be prevented from appearing in each encoded code bit value, and the possibility that the third party notices the combining of the other data can further be reduced.
Moreover, according to the decoding method, the vibration wave is recovered and the binary data synthesized as described above can be separated from the code generated by the encoding method.
First, in one embodiment, the vibration wave is reproduced, and with the affirmative determination by the synthesis condition determination processing, the other binary data is separated from the currently inputted code. Furthermore, the same change condition determination processing as the change condition determination processing is performed on the previously inputted code before performing the synthesis condition determination processing. When the affirmative determination is made by the change condition determination processing, the division instruction information to be stored in the memory means is changed in accordance with the same change rule as the change rule.
Moreover, according to the decoding method, the division instruction information can be changed in the same manner as in the encoding method, and as a result, the other binary data can securely be extracted from the code generated by the encoding method.